http://subiecte2012.edu.ro/2012/bacalaureat/modeledesubiecte/


http://www.subiecte-bacalaureat.ro/program-bac-2012?utm_adwords=programa&gclid=CIKilbKlhLACFcfP3wod53g7jw


Bacalaureat sesiune speciala (olimpici) 2012

Matematica informatica intensiv




Stiinţe ale naturii


posibile rezolvari pentru problema de la partea a II - stringuri
Varianta I- sterg din S2 caracterele care nu se potrivesc in ordinea aparitiei
#include<iostream.h>
  1. include<string.h>
void main()
{ char s1[30], s2[30],*p;
int n1,n2,i;
cin.get(s1,30);
cin.get();
cin.get(s2,30);
n1=strlen(s1);cout<<n1<<endl;
n2=strlen(s2);
if(n1>n2) cout<<"nu";
else
{ for(i=0;i<n1;i++)
{ p=strchr(s2,s1[i]); caut caracter cu caracter din S1 in S2
if(p!=NULL) strcpy(s2+i,p);sterg caracterele in plus
}
if(strlen(s2)==n1) cout<<"da";else cout<<"nu";
}
}
Varianta II- numar caracterele din S1 care apar in S2 in ordinea data
#include<iostream.h>
  1. include<string.h>
void main()
{ char s1[30], s2[30],*p;
int n1,n2,i;
cin.get(s1,30);
cin.get();
cin.get(s2,30);
n1=strlen(s1);
n2=strlen(s2);
if(n1>n2) cout<<"nu";
else
{
for(i=0;i<n1;i++)
{ p=strchr(s2,s1[i]); caut in S2 caracter cu caracter din S1
if(p!=NULL)
{ strcpy(s2,p+1); sterg tot pana la caracterul respectiv
k++;//numar caracterele din S1 gasite in S2
}
}
if(k==n1) cout<<"da";else cout<<"nu";
}
}